Data compression, or compacting of data, has been applied to compress data and reduce the number of bits required to represent data, such as image data. There exist quite a few different techniques for data compression in the prior art. Complex data processing equipment is required for achieving the highest levels of data compression, and the execution is often slow. Less complex data processing equipment is required for achieving lower levels of data compression, but execution is typically faster. Typically, a compromise is reached between system complexity and time of execution versus a desired level of data compression.
Earlier page printing techniques involved one bit, one plane, monochrome image data. Recently, color printing has become popular. Some recent attempts to realize color printing have used less than an eight bit, three plane implementation such that it is not possible to realize all colors within a color spectrum. In order to realize a full color spectrum, it becomes necessary to use eight bit, three plane image data which requires a significantly increased amount of memory resulting from the significantly increased amount of data. Hence, a 24-fold increase is made in image data size between one bit, one plane image data and eight bit, three plane image data.
Another prior art technique involves storing a full raster bit of an entire page such that a print mechanism always has rasterized data awaiting action. However, recent increases in print resolution from 300 dpi to 600 dpi have quadrupled the raster memory needs. Therefore, additional raster memory is required in order to run a printer at higher resolutions and with multiple colors. However, to remain cost competitive, manufacturers have been forced to direct substantial efforts towards reducing the amount of required memory in a laser printer.
Personalities have been used to describe the markings and formatting that is placed onto a page. A personality is a page description language (PDL). During formatting, data is received from a host computer and is converted into a list of display commands. The display commands are simple commands that describe what must be printed. The display command list is prepared for printing and involves a parsing of the display commands and a rendering of the described objects into a raster bit map. However, there are pitfalls when generating a display list since there is typically not enough memory in the display list and the display list is likely to run out of memory. Once the display list has been fully built, it is blitted into strip buffers and sent off to the print engine.
In order to meet the demands of modern printers, which can have resolutions of 600 dpi or greater, general purpose data compression techniques have been used to minimize the amount of memory required by a printer.
In the past, a number of techniques have been developed for compressing and processing images. One technique involves the use of Adaptive Data Compression (ADC). U.S. Pat. No. 5,479,587 to Campbell et al., assigned to the Assignee, discloses details of adaptive data compression (ADC) as presently understood in the art. U.S. Pat. No. 5,479,587 is incorporated herein by reference as detailing present knowledge within the art. However, Adaptive Data Compression (ADC) can only process 1 bit, 1 plane monochrome image data. Furthermore, ADC implementations could not JPEG compress the image data. Hence, there exist additional needs to compress multiple dimension image data, and to provide for JPEG compression.
U.S. Pat. No. 5,677,689 to Yovanof et al. discloses details of JPEG image compression that uses an estimated Q-factor value when compressing an arbitrary image to a predetermined fixed size file. U.S. Pat. No. 5,677,689 is incorporated herein by reference as evidencing present knowledge within the art.
JPEG stands for the Joint Photographic Experts Group. JPEG comprises a lossy image-compression algorithm that often reduces the size of bitmapped images by a factor of 10 or more with little or no discernible image degradation. JPEG compression works by filtering out an image's high-frequency information to reduce the volume of data and then compressing the resulting data with a compression algorithm. Low-frequency information does more to define the characteristics of an image, so losing some high frequency information does not necessarily affect the image quality.
Prior art solutions are not capable of implementing adaptive data compression (ADC) in a manner that enables processing of 8 bit, 3 plane color data, particularly with a minimized allocation of memory. Additionally, prior art solutions are not capable of JPEG compressing image data. Therefore, there exists a need for implementing adaptive data compression (ADC) capable of processing 8 bit, 3 plane color data, which is 24 times larger than 1 bit, 1 plane monochrome image data.
This invention relates to improvements to adaptive data compression in order to realize even greater compression ratios while concerning memory.